Search results for "Code generation"
showing 10 items of 13 documents
Generating Executable Code from High-Level Social or Socio-Ecological Model Descriptions
2019
Agent-Based Modelling has been used for social simulation because of the several benefits it entails. Social models are often constructed by inter-disciplinary teams that include subject-matter experts with no programming skills. These experts are typically involved in the creation of the conceptual model, but not the verification or validation of the simulation model. The Overview, Design concepts, and Details (ODD) protocol has emerged as a way of presenting a model at a high level of abstraction and as an effort towards improving the reproducibility of Agent-Based Models (ABMs) but it is typically written after a model has been completed. This paper reverses the process and provides non-…
Towards a design process for modeling MAS organizations
2012
The design of MAS organizations is a complex activity where a proper methodological approach may offer a significant advantage in enabling the conception of the best solution. Moreover, the aid provided by a supporting tool significantly contributes to make the approach technically sound and it is a fundamental ingredient of a feasible strategy to the development of large MASs. In this paper, we introduce a portion of methodological approach devoted to design MAS organizations and a preliminary version of a specific case tool, named MoT (Moise+ Tool), for supporting activities from design production to automatic code generation. MoT provides four kinds of diagrams based on a definite graphi…
Towards a Reference Architecture for Model-Driven Business Apps
2016
Model-driven development techniques have been proposed for cross-platform app development. Typically, an individual domain-specific language (DSL) is used. The MD² framework consists of a DSL for business apps and generators, which transform a domain model to native platform code. Prior research on it focused on language and general generator design, this paper accentuates the code generation stage. A reference architecture for the generated apps is proposed to accelerate the development of new generators for which architectural decisions had been made on ad-hoc basis up to now. Moreover, generators are going to expose similar structures that facilitate maintenance. Our proposal takes MD²'s…
AnyDSL: a partial evaluation framework for programming high-performance libraries
2023
This paper advocates programming high-performance code using partial evaluation. We present a clean-slate programming system with a simple, annotation-based, online partial evaluator that operates on a CPS-style intermediate representation. Our system exposes code generation for accelerators (vectorization/parallelization for CPUs and GPUs) via compiler-known higher-order functions that can be subjected to partial evaluation. This way, generic implementations can be instantiated with target-specific code at compile time. In our experimental evaluation we present three extensive case studies from image processing, ray tracing, and genome sequence alignment. We demonstrate that using partial …
Learning Pros and Cons of Model-Driven Development in a Practical Teaching Experience
2016
Current teaching guides on Software Engineering degree focus mainly on teaching programming languages from the first courses. Conceptual modeling is a topic that is only taught in last courses, like master courses. At that point, many students do not see the usefulness of conceptual modeling and most of them have difficulty to reach the level of abstraction needed to work with them. In order to make the learning of conceptual modeling more attractive, we have conducted an experience where students compare a traditional development versus a development using conceptual models through a Model-Driven Development (MDD) method. This way, students can check on their own pros and cons of working w…
PMG-Pro: A Model-Driven Development Method of Service-Based Applications
2011
Published version of a chapter published in the book: SDL 2011: Integrating System and Software Modeling. Also available from the publisher at: http://dx.doi.org/10.1007/978-3-642-25264-8_12 In the Internet of Things, billions of networked and software-driven devices will be connected to the Internet. They can communicate and cooperate with each other to form a composite system. In this paper, we propose PMG-pro (present, model, generate and provide), a language independent, bottom-up and model-driven method for the development of such composite system. We envision that all devices in the Internet of Things provide their functionalities as services. From a service description, a service pre…
Accelerating Clifford Algebra Operations using GPUs and an OpenCL Code Generator
2015
Clifford Algebra (CA) is a powerful mathematical language that allows for a simple and intuitive representation of geometric objects and their transformations. It has important applications in many research fields, such as computer graphics, robotics, and machine vision. Direct hardware support of Clifford data types and operators is needed to accelerate applications based on Clifford Algebra. This paper proposes a mixed software-hardware system that exploits the computational power of Graphics Processing Units (GPUs) to accelerate Clifford operations. A code generator, namely OpenCLifford, is presented that automatically generates Java and C libraries for the direct support of Clifford ele…
Separation of Concerns and Role Implementation in the PASSI Design Process
2007
The use of design patterns proved successful in lowering the development time and number of errors when producing software with the object-oriented paradigm. In previous works we engaged the production of a tool for the reuse of patterns for multi-agent systems. Now we are fronting a new problem: automatic code generation for agents, designed with a specific methodology, with the support of design patterns and using an aspect oriented approach. In this work we present our preliminary experiences in the identification, description, production and use of aspects for multi agent systems and a tool for code production.
A Rule-Based System for Hardware Configuration and Programming of IoT Devices
2019
Simplifying programming, deployment, and configuration of heterogeneous networked IoT devices requires networking, hardware, representation of knowledge and concepts, design and programming skills. In fact, IoT applications are mostly built by adopting different existing paradigms and technologies on a case-by-case basis. As a result, programming tools hinder adaptability and interoperability of applications with their rigidity. In this paper, we propose a rule-based system that configures and programs IoT devices automatically. The rule base holds formal specifications about hardware platforms, networking protocols, physical world concepts, and applications. Provided with a high-level appl…
Recursive modeling for completed code generation
2009
Model-Driven Development is promising to software development because it can reduce the complexity and cost of developing large software systems. The basic idea is the use of different kinds of models during the software development process, transformations between them, and automatic code generation at the end of the development. But unlike the structural parts, fully-automated code generation from the behavior parts is still hard, if it works at all, restricted to specific application areas using a domain specific language, DSL.This paper proposes an approach to model the behavior parts of a system and to embed them into the structural models. The underlying idea is recursive refinements …